/*
剑指 Offer 14- I. 剪绳子
解题思路：
当长度小于2时，直接返回0；
当长度等于2时，只能被分为1,1，返回1；
当长度等于3时，只能被分为1,2，返回2；
其他情况，先求出可以被分成几个3，a，再求出模3后余数是多少，当余数为1时，证明要舍弃一个3，，当余数为2时，返回3的a次方再乘以2.
 */
public class Offer14 {

  public static void main(String[] args) {
    System.out.println(new Offer14().cuttingRope(7));
  }

  public int cuttingRope(int n) {
    if (n < 2){
      return 0;
    }
    if (n == 2){
      return 1;
    }
    if (n == 3){
      return 2;
    }
    int a = Math.floorDiv(n,3);
    int b = n % 3;
    if (b == 0){
      return (int)Math.pow(3,a);
    }
    if (b == 1){
      return (int)Math.pow(3,a - 1)*4;
    }
    return (int)Math.pow(3,a)*2;
  }
}
